The purpose of this article is to serve as a guide for ingesting and working with RAWS data and to present this data with a map. For this example, we will look at cumulative precipitation across Washington and Oregon between August 1st and September 7th.
First, we will use RAWSmet’s wrcc_loadMeta() function to gather the appropriate metadata and for the RAWS stations in Oregon and Washington. Additionally, we must set the directory that stores RAWS data by using setRawsDataDir().
RAWSmet functions will save any data downloaded by wrcc_load~() or cefa_load~() functions to this directory and will retrieve it if requested again.
library(RAWSmet)
setRawsDataDir("~/Data/RAWS")
# Load state level metadata
wa_meta <- wrcc_loadMeta("WA")
or_meta <- wrcc_loadMeta("OR")
# Take a look at the structure of this metadata
head(wa_meta)
## # A tibble: 6 × 14
## deviceDeploymen… deviceID locationID locationName longitude latitude elevation
## <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl>
## 1 533c35f68329910… 452036 533c35f68… 83 Monument -121. 49.0 1979
## 2 39590e56eb8480d… 451209 39590e56e… Abernathy M… -123. 46.4 884
## 3 8dcec9800b7f21d… 452001 8dcec9800… Aeneas -120. 48.7 1580
## 4 838f4a15c75cf84… 453803 838f4a15c… Alder Ridge -117. 46.3 1372
## 5 20965de799414d2… waWARC 20965de79… Arcadia Orc… -117. 47.9 625
## 6 7f184ed612562f2… 451809 7f184ed61… Ashford -122. 46.8 433
## # … with 7 more variables: countryCode <chr>, stateCode <chr>, timezone <chr>,
## # nwsID <chr>, wrccID <chr>, nessID <chr>, agencyName <chr>
Just to double check that we are accessing the correct stations, we can easily plot them on a map with meta_leaflet().
orwa_meta <- or_meta %>% rbind(wa_meta)
meta_leaflet(orwa_meta)
The wrcc_loadYear() function may be used to gather yearly data for a specific station. This function will create a raws_timeseries object with meta and data dataframes storing different information. The meta dataframe stores the metadata for this specific station and the data dataframe will contain hourly observations from this station.
For this example, however, we will use the wrapper function, wrcc_loadMultiple(). This function will load multiple raws_timeseries objects into a list of type raws_list.
In order for the following code to run properly on a local machine, one must provide a valid password used for accessing RAWS data.
# Load all stations in Oregon
orList <-
# Load data
wrcc_loadMultiple(
wrccIDs = or_meta$wrccID,
meta = or_meta,
year = 2020,
newDownload = FALSE,
password = MY_PASSWORD,
verbose = FALSE
)
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBCP
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBEN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBIG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBLR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBUC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBUR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCAM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCHE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orODE1
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orODE2
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orODEA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOEIG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOELK
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOFRA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOHAW
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOHER
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOHYR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOIND
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOKAK
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOLAW
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOLOC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMCP
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMUL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOOAA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOPAN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOPOW
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOPRI
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOROH
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOROV
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOSTA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOSWE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOSYC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOTAF
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOTTM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOWCR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOWLK
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBDG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBIM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBLM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBMN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBOB
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOBOR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCHW
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCLY
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCMT
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCOF
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCOO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOCUN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orODNM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOFC3
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOGLD
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOGRA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOKEE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOKUH
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOLIG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOLTB
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMCC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMEY
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMIK
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMIL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMIN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOMIT
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOPOI
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOPOO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orORAN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orORAT
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOSNC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOSTU
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOSTY
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOTOL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOUNF
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: orOUNT
# Load all stations in Washington
waList <-
# Load data
wrcc_loadMultiple(
wrccIDs = wa_meta$wrccID,
meta = wa_meta,
year = 2020,
newDownload = FALSE,
password = MY_PASSWORD,
verbose = FALSE
)
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waBC83
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWABE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWAEN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWARC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWBBL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWBCR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWBKN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWBLA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWBLU
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWBRO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCA4
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCAN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCAR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCEC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCED
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCHE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCLI
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCNW
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCOU
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWCRO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWDEE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWDEN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWDIR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWDOU
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWDRC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWDRY
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWELR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWENG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWENT
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWESC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWETT
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWFAI
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWFIN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWFIR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWFLO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWFOR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWFTA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWGDE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWGLD
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWGOH
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWGOL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWGPN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWGRE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWGRN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHAG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHAM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHER
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHIG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHOL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHOZ
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHUC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHUM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWHUR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWIRO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWJEF
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWJIM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWJOH
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWJUN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWKET
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWKID
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWKOS
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWKRA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWLAN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWLAR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWLEE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWLES
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWLOS
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWLTP
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWMCK
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWMD2
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWMET
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWMID
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWMIN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWMRB
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWMTB
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWNCS
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWNES
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWNR1
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWOHA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWORO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWORR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWOWE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWOWW
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWPAL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWPEO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWPEY
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWPIN
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWQUC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWQUI
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWRED
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSAD
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSAF
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSED
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSEK
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSEW
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSIG
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSIT
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSMT
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSPC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSPR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSSP
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSTA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSTH
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSUM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWSWA
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTAC
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTCR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTEE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTEP
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTOL
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTOM
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTRO
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWTUR
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWVIE
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWWAS
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWWLP
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWWRX
## Error in wrcc_loadYear(wrccID = wrccID, meta = meta, year = year, newDownload = newDownload, :
## Skipping wrccID: waWYTC
Next we will filter this raws_list to contain only the observations between the time range of interest: August 1st to September 7th.
orList <- orList %>%
# Filter to the desired time range
rawsList_filterDate(
startdate = 20200801,
enddate = 20200907,
timezone = "America/Los_Angeles"
) %>%
# Remove any stations with no data
rawsList_removeEmpty()
waList <- waList %>%
# Filter to the desired time range
rawsList_filterDate(
startdate = 20200801,
enddate = 20200907,
timezone = "America/Los_Angeles"
) %>%
# Remove any stations with no data
rawsList_removeEmpty()
To calculate the cumulative precipitation for each station, we will convert these two raws_lists to a tidy rawsDF. This is a single dataframe where each row represents an hourly measurement. The difference between this and the data dataframe of a raws_timeseries object is that each observation is stored with its associated station metadata.
# Create tidy dataframes
orDF <-
orList %>%
lapply(raws_toRawsDF) %>%
dplyr::bind_rows()
waDF <-
waList %>%
lapply(raws_toRawsDF) %>%
dplyr::bind_rows()
# Remove an erroneous observation
waDF <- waDF %>%
dplyr::mutate(precipitation = replace(precipitation, precipitation > 5000, 0))
# Combine tidy dataframes
orwaDF <- orDF %>% dplyr::bind_rows(waDF)
names(orwaDF)
## [1] "datetime" "temperature" "humidity" "windSpeed"
## [5] "windDirection" "maxGustSpeed" "maxGustDirection" "precipitation"
## [9] "solarRadiation" "fuelMoisture" "fuelTemperature" "monitorType"
## [13] "nwsID" "wrccID" "locationName" "longitude"
## [17] "latitude" "timezone" "elevation" "VPD"
## [21] "FFWI"
Now that we have the data in a single dataframe, we can calculate the cumulative precipitation.
# Find the cumulative precipitation. at each site
plotDF <-
orwaDF %>%
dplyr::group_by(wrccID) %>%
dplyr::mutate(
total_precip = cumsum(precipitation)
) %>%
dplyr::slice_max(datetime, with_ties = FALSE) %>%
dplyr::ungroup() %>%
dplyr::select(datetime, wrccID, longitude, latitude, total_precip)
# # Set precipitation values equal to zero to NA
# # This is important for when we plot the data
# plotDF <- plotDF %>%
# dplyr::mutate(total_precip = replace(total_precip, total_precip == 0, NA))
zeroPrecipDF <-
plotDF %>%
dplyr::filter(total_precip == 0)
head(plotDF)
## # A tibble: 6 × 5
## datetime wrccID longitude latitude total_precip
## <dttm> <chr> <dbl> <dbl> <dbl>
## 1 2020-09-07 06:00:00 caCKLA -122. 43.0 4
## 2 2020-09-07 06:00:00 orOAGN -124. 42.6 0
## 3 2020-09-07 05:00:00 orOALK -117. 44.1 0
## 4 2020-09-07 06:00:00 orOALL -120. 43.9 7
## 5 2020-09-07 06:00:00 orOANT -118. 44.0 3
## 6 2020-09-07 06:00:00 orOBAD -120. 44.0 0
Now plotDF contains all of the information we need to create a map of cumulative precipitation across Washington and Oregon. The following code will illustrate how this map is generated.
library(ggmap)
library(ggplot2)
# 5 bins (one per ',')
breaks = c(-Inf, 5, 10, 20, 50, Inf)
# 5 colors
colors <- RColorBrewer::brewer.pal(5, "BrBG")
# 5 color positions [0-1]
values <- c(.005, .01, .02, .05, 1)
gg <-
# Create an empty map
ggmap::qmplot(
longitude,
latitude,
data = plotDF,
geom = "blank",
zoom = 7,
maptype = "terrain-background"
) +
# Add points at each station where the color is based on 'total_precip'
geom_point(aes(color = total_precip), alpha = 1, size = 4) +
scale_color_stepsn(
name = "Precip (mm)",
breaks = breaks,
colors = colors,
values = values,
guide = guide_colorsteps(order = 1)
) +
# Add points with zero precipitation in black
geom_point(
data = zeroPrecipDF,
color = 'black',
alpha = 1, size = 4,
mapping = aes(fill = "No Precipitation")
) +
# Add a second legend for "No precipitation" black dots
guides(fill = guide_legend("", override.aes = list(shape = 15, size = 7), order = 2)) +
# Add a title.
ggtitle(
label = "OR/WA Total Precipitaion \n Aug 01 - Sep 07, 2020"
) +
# Theme with centered title
theme(plot.title = element_text(hjust = 0.5))
print(gg)